#ifndef BIGINT_PTR
	#define BIGINT_PTR
	
	#include "bigint.h"
	#include "storage.h"

	struct BigIntPtr{
		BigIntPtr(BigInt * p = 0);
		BigIntPtr(BigIntPtr const & p);
		~BigIntPtr();
		BigInt & operator* () const;
		BigInt * operator-> () const;
		void operator= (BigInt * p); 
		Storage * storage() const;
	
	private:
		Storage * storage_;
	};

	bool operator == (BigIntPtr const bp1, BigIntPtr const bp2);
	bool operator != (BigIntPtr const bp1, BigIntPtr const bp2);
	bool operator >  (BigIntPtr const bp1, BigIntPtr const bp2);
	bool operator <  (BigIntPtr const bp1, BigIntPtr const bp2);
	bool operator >= (BigIntPtr const bp1, BigIntPtr const bp2);
	bool operator <= (BigIntPtr const bp1, BigIntPtr const bp2);

#endif
